package com.tpc.control.jpa;

import java.util.List;

/**
 * Interface for RoutingDataDAO.
 * 
 * @author MyEclipse Persistence Tools
 */

public interface IRoutingDataDAO {
	/**
	 * Perform an initial save of a previously unsaved RoutingData entity. All
	 * subsequent persist actions of this entity should use the #update()
	 * method. This operation must be performed within the a database
	 * transaction context for the entity's data to be permanently saved to the
	 * persistence store, i.e., database. This method uses the
	 * {@link javax.persistence.EntityManager#persist(Object)
	 * EntityManager#persist} operation.
	 * 
	 * <pre>
	 * EntityManagerHelper.beginTransaction();
	 * IRoutingDataDAO.save(entity);
	 * EntityManagerHelper.commit();
	 * </pre>
	 * 
	 * @param entity
	 *            RoutingData entity to persist
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void save(RoutingData entity);

	/**
	 * Delete a persistent RoutingData entity. This operation must be performed
	 * within the a database transaction context for the entity's data to be
	 * permanently deleted from the persistence store, i.e., database. This
	 * method uses the {@link javax.persistence.EntityManager#remove(Object)
	 * EntityManager#delete} operation.
	 * 
	 * <pre>
	 * EntityManagerHelper.beginTransaction();
	 * IRoutingDataDAO.delete(entity);
	 * EntityManagerHelper.commit();
	 * entity = null;
	 * </pre>
	 * 
	 * @param entity
	 *            RoutingData entity to delete
	 * @throws RuntimeException
	 *             when the operation fails
	 */
	public void delete(RoutingData entity);

	/**
	 * Persist a previously saved RoutingData entity and return it or a copy of
	 * it to the sender. A copy of the RoutingData entity parameter is returned
	 * when the JPA persistence mechanism has not previously been tracking the
	 * updated entity. This operation must be performed within the a database
	 * transaction context for the entity's data to be permanently saved to the
	 * persistence store, i.e., database. This method uses the
	 * {@link javax.persistence.EntityManager#merge(Object) EntityManager#merge}
	 * operation.
	 * 
	 * <pre>
	 * EntityManagerHelper.beginTransaction();
	 * entity = IRoutingDataDAO.update(entity);
	 * EntityManagerHelper.commit();
	 * </pre>
	 * 
	 * @param entity
	 *            RoutingData entity to update
	 * @return RoutingData the persisted RoutingData entity instance, may not be
	 *         the same
	 * @throws RuntimeException
	 *             if the operation fails
	 */
	public RoutingData update(RoutingData entity);

	public RoutingData findById(RoutingDataId id);

	/**
	 * Find all RoutingData entities with a specific property value.
	 * 
	 * @param propertyName
	 *            the name of the RoutingData property to query
	 * @param value
	 *            the property value to match
	 * @return List<RoutingData> found by query
	 */
	public List<RoutingData> findByProperty(String propertyName, Object value);

	public List<RoutingData> findByProcess01(Object process01);

	public List<RoutingData> findByProcess02(Object process02);

	public List<RoutingData> findByProcess03(Object process03);

	public List<RoutingData> findByProcess04(Object process04);

	public List<RoutingData> findByProcess05(Object process05);

	public List<RoutingData> findByProcess06(Object process06);

	public List<RoutingData> findByProcess07(Object process07);

	public List<RoutingData> findByProcess08(Object process08);

	public List<RoutingData> findByProcess09(Object process09);

	public List<RoutingData> findByProcess10(Object process10);

	public List<RoutingData> findByProcess11(Object process11);

	public List<RoutingData> findByProcess12(Object process12);

	public List<RoutingData> findByProcess13(Object process13);

	public List<RoutingData> findByProcess14(Object process14);

	public List<RoutingData> findByProcess15(Object process15);

	public List<RoutingData> findByProcess16(Object process16);

	public List<RoutingData> findByProcess17(Object process17);

	public List<RoutingData> findByProcess18(Object process18);

	public List<RoutingData> findByProcess19(Object process19);

	public List<RoutingData> findByProcess20(Object process20);

	public List<RoutingData> findByProcessName01(Object processName01);

	public List<RoutingData> findByProcessName02(Object processName02);

	public List<RoutingData> findByProcessName03(Object processName03);

	public List<RoutingData> findByProcessName04(Object processName04);

	public List<RoutingData> findByProcessName05(Object processName05);

	public List<RoutingData> findByProcessName06(Object processName06);

	public List<RoutingData> findByProcessName07(Object processName07);

	public List<RoutingData> findByProcessName08(Object processName08);

	public List<RoutingData> findByProcessName09(Object processName09);

	public List<RoutingData> findByProcessName10(Object processName10);

	public List<RoutingData> findByProcessName11(Object processName11);

	public List<RoutingData> findByProcessName12(Object processName12);

	public List<RoutingData> findByProcessName13(Object processName13);

	public List<RoutingData> findByProcessName14(Object processName14);

	public List<RoutingData> findByProcessName15(Object processName15);

	public List<RoutingData> findByProcessName16(Object processName16);

	public List<RoutingData> findByProcessName17(Object processName17);

	public List<RoutingData> findByProcessName18(Object processName18);

	public List<RoutingData> findByProcessName19(Object processName19);

	public List<RoutingData> findByProcessName20(Object processName20);

	/**
	 * Find all RoutingData entities.
	 * 
	 * @return List<RoutingData> all RoutingData entities
	 */
	public List<RoutingData> findAll();
}